/**
 * 
 * 起迪科技 Copyright (c) 2014-2018 QiDi,Inc.All Rights Reserved.
 */
package cn.qidisoft.edu.hzjt.service;

import java.util.List;

import cn.qidisoft.edu.hzjt.model.Employee;
import cn.qidisoft.edu.hzjt.model.Grade;
import cn.qidisoft.edu.hzjt.model.Priority;
import cn.qidisoft.edu.hzjt.model.Semester;
import cn.qidisoft.edu.hzjt.model.Specialty;
import cn.qidisoft.edu.hzjt.model.Student;
import cn.qidisoft.edu.hzjt.model.StudentClass;
import cn.qidisoft.edu.hzjt.model.StudentFamily;
import cn.qidisoft.edu.hzjt.model.SysCode;
import cn.qidisoft.edu.hzjt.model.UserEmployee;

/**
 * 
 * @author hxq
 * @version $Id: ICommonService.java, v 0.1 2018年10月25日 下午2:07:26 hxq Exp $
 */
public interface ICommonService {
    /**
     * 获得用户对应教职工信息
     * 
     * @param user
     * @return
     */
    public UserEmployee queryUserByEmployee(UserEmployee user);

    /**
     * 验证当当前用户是否是班主任
     * 
     * @param user
     * @return
     */
    public int queryUserClassByValdateBzr(UserEmployee user);

    /**
     * 获得学生信息
     * 
     * @param student
     * @return
     */
    public Student queryStudentByEmployee(Student student);

    /**
     * 获得教职工权限信息
     * 
     * @param priority
     * @return
     */

    public List<Priority> queryUserByPriority(UserEmployee userEmployee);

    /**
     * 获得学期信息
     */
    public List<Semester> queryAllBySemester();

    /**
     * 获得学期信息
     */
    public Semester queryBySemester(Semester semester);

    /**
     * 获得标准代码表信息
     * 
     * @return
     */
    public List<SysCode> queryAllBySysCode();

    /**
     * 获得年级信息
     * 
     * @return
     */

    public List<Grade> queryAllByGrade(Grade grade);

    public Grade queryByGrade(Grade grade);

    public StudentClass queryGradeByClass(Grade grade);

    /**
     * 获得所有专业信息
     * 
     * @return
     */
    public List<Specialty> queryAllBySpecialty(Specialty specialty);

    public StudentClass querySpecialtyByClass(Specialty specialty);

    public List<StudentClass> queryGradeSpecialtyByClass(Student student);

    /**
     * 获取当前在校学生所在班级内的班主任
     * 
     * @param studentClass
     * @return
     */
    public List<Employee> queryStudentClassByBzr(Student student);

    public List<Employee> queryStudentClassByAllBzr();

    /**
     * 获得教职工信息
     * 
     * @param employee
     * @return
     */
    public List<Employee> queryByAllEmployee(Employee employee);

    public Employee queryByEmployee(Employee employee);

    public List<Employee> queryNotCurrByAllEmployee(Employee employee);

    /**
     * 获得学生信息
     * 
     * @param student
     * @return
     */
    public List<Student> queryClassOrGradeByStudent(StudentClass student);

    public Student queryByStudent(Student student);

    /**
     * 获得符合评定项目学生信息
     * 
     * @param student
     * @return
     */

    public List<Student> querySemesterByStudentConductList(Student student);

    /**
     * 获得符合评定学生成绩信息
     * 
     * @param student
     * @return
     */
    public List<Student> querySemesterStudentScoreConductList(Student student);

    /**
     * 获得班级学生人数
     * 
     * @param student
     * @return
     */

    public int queryClassStudentCount(Student student);

    /**
     * 获得学生家庭信息
     */
    public List<StudentFamily> queryStudentByAllFamily(StudentFamily studentFamily);

    /**
     * 获得所有学年
     * 
     * @return
     */
    public List<Semester> queryAllByYear();

    /**
     * 通过学年获得学期信息
     * 
     * @param semester
     * @return
     */

    public List<Semester> queryYearBySemester(Semester semester);

    /**
     * 获得学生的操行评定等级
     * 
     * @param student
     * @return
     */
    public Student queryByStudentConduct(Student student);

    /**
     * 获得班级信息
     * 
     * @param bjid
     * @return
     */
    public StudentClass queryStudentClass(Integer bjid);

    /**
     * 获取班主任信息
     * 
     * @param student
     * @return
     */
    public List<Employee> getqueryStudentClassByBzr(Student student);
}
